package cn.tedu.jdbc;

import cn.tedu.jdbc.utils.DbUtils;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;

/**
 *
 */
public class JDBCTest23 {
    public static void main(String[] args) {
        Connection conn = null;
        CallableStatement cs = null;

        try {
            conn = DbUtils.getConnection();

            //使用存储过程的SQL语句
            //注意：外边有一个大括号
            String sql = "{ call mypro(?,?) }";
            //对以上的SQL语句进行预编译
            cs = conn.prepareCall(sql);

            //给占位符 ？ 传值
            cs.setInt(1,100);

            //将将单一占位符注册为出参
            //并且出参的数据类型是整数型
            cs.registerOutParameter(2, Types.INTEGER);

            //调用存储过程
            cs.execute();

            //获取执行结果
            int result = cs.getInt(2);
            System.out.println("执行结果："+result);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            DbUtils.close(conn, cs, null);
        }
    }
}
